#pragma once
#include <iostream>
#include <string>
#include <windows.h>
#include <vector>
#include "Functions.h"
#include "Constants.h"

using namespace std;

const enum Style
{
	STYLE_VERTICAL = 1,
	STYLE_HORIZONTAL = 2,
	STYLE_DOUBLEDIST = 4,
	STYLE_ORNAMENTS = 8
};
inline Style operator|(Style a, Style b)
{return static_cast<Style>(static_cast<int>(a) | static_cast<int>(b));}

struct record
{
	string name;
	short action;
};

class menu
{
private:
	short* state;
	vector<record> Menu;
	short option;

public:
	void add(string name, short action);
	void show();
	void think();

	short style;
	menu(short* state, Style style);
	~menu(void);
};

